<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 节点的优点 -->
    <div>我是div</div>
    <span>我是span</span>
    <ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
    </ul>
    <ol>
        <li>我是li1</li>
        <li>我是li2</li>
        <li>我是li3</li>
        <li>我是li4</li>
    </ol>
    <div class="demo">
        <div class="box">
            <span class="erweima">x</span>
        </div>
        <span>
            我是span
        </span>
    </div>
    
    <script>
        // 1.父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('box');
        // 得到的是离元素最近的父节点  (亲爸爸) 如果找不到父节点就返回 null
        console.log(erweima.parentNode);
        // 2.子节点 
        // (1) childNodes 所有的子节点 包含 元素节点 文本节点
        var ul = document.querySelector('ul')
        console.log(ul.childNodes); // NodeList(9) 5个文本节点（换行）和4个li
        console.log(ul.childNodes[0].nodeType); //3
        console.log(ul.childNodes[1].nodeType); //1
        // (2)children 获取所有的子元素节点 也是我们实际开发
        console.log(ul.children);
        // (3)firstChild/ lastChild 获取第一个/最后子节点，不管是文本节点还是元素节点
        var ol = document.querySelector('ol')
        console.log(ol.firstChild); // #text
        console.log(ol.lastChild); // #text
        // (4)firstElementChild
        console.log(ol.firstElementChild); // <li>....
        console.log(ol.lastElementChild); // <li>....
        
        // 实际开发的写法
        console.log(ol.children[0]);
        console.log(ol.children[ol.children.length-1]);

        // 3.兄弟节点
        var div = document.querySelector('.box')
        // nextSibling 下一个兄弟节点 包含元素节点 文本节点
        console.log(div.nextSibling); // #text  
        console.log(div.previousSibling); // #text
        // nextElementSibling 得到下一个兄弟元素节点
        console.log(div.nextElementSibling); // <span>....
        console.log(div.previousElementSibling); //null


    

    </script>
</body>
</html>